<?php 
/**
 * @param string $msg 成功要输入的信息
 */
function succ($msg='成功'){
	$res = 'a';//因为你模版用的是class判断的绿子还是红字
	include(ROOT.'/view/admin/info.html');
	exit();
}
//succ('栏目添加成功');
/**
 * @param string $msg 成功要输入的信息
 */
function error($msg='失败'){
	$res = 'error';//因为你模版用的是class判断的绿子还是红字
	include(ROOT.'/view/admin/info.html');
	exit();
}

/**
 * 获取来访者的真实IP
 */
function getRealIp(){
	//静态变量可以防止反复获取
	static $realip = null;
	if($realip !== null){
		return $realip;
	}

	if(getenv('REMOTE_ADDR')){
		$realip = getenv('REMOTE_ADDR');
	}elseif(getenv('HTTP_CLINET_IP')){
		$realip = getenv('HTTP_CLINET_IP');
	}elseif(getenv('HTTP_X_FORWARDED_FOR')){
		$realip = getenv('HTTP_X_FORWARDED_FOR');
	} 
	return $realip; 
}

/**
 * 计算分页代码/假设显示5个分页
 * @param int $cnt 总文章数
 * @param int $per 每页显示文章数
 * @param int $curr 当前显示页码数
 * @return arr $page 返回给我一个页码数 
 */
function pagenation($cnt,$per,$curr){
	//计算最大的页码数
	$max = ceil($cnt/$per);
	//计算最左边的页码数
	$left = max(1,$curr-2);
	//最右侧的页码数
	$right = min($max,$left+4);
	//当页面使劲往右测靠拢,比如页码是8,页数 6 7 8 9 ,不足5个,其实 5 也应该显示出来
	//既然左边的有问题,就用没问题的右边去重新计算左边
	$left = max(1,$right-4);

	//获取5个页码数,放在数组里面
	$page = array();
	for($i = $left;$i<=$right;$i++){  
		$_GET['page'] = $i;
		$page[$i] = http_build_query($_GET);
	}
	return $page;
	//$_GET = array(page=>xx,cat_id=xx)
	//array(1=>cat_id=2&page=2)
}

/**
 * 生成随机字符串
 * @param int $length 产生几位的随机字符串
 * @return str 返回一个随机字符串 
 */
function randStr($num=6){
	$str = str_shuffle("abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXY3456789");
	$str = substr($str,0,$num);
	return $str;
}
//echo randStr();
/**
 * 创建连接目录
 * @return mixed 成功返回路径,不成功返回false
 */
function createDir(){
	$path = '/upload/'.date('Y/m/d');
	$fpath = ROOT.$path;
	if(is_dir($fpath)||mkdir($fpath,0777,true)){
		return $path;
	}else{
		return false;
	}
}
/**
 * 获取文件后缀
 * @param str $name 文件名
 * @return str 文件后缀名,且(带点)
 */
function getExt($filname){
	return strrchr($filname,'.');
}
/**
 * 检测是否登录
 */
function acc(){
	return isset($_COOKIE['name']);
}

/**
 * 等比例生成缩略图,比例不合适,两端要留白
 * @param str $ori 原始图的路径 例:/upload/2016/11/09/sddsfdfdd.
 * @param int $sw 缩略图的宽
 * @param int $sh 缩略图的高
 * @return mixed $path 缩略图生成以后的路径/如果失败返回false
 */

function makeThumb($ori,$sw=200,$sh=200){
	$path = dirname($ori).'/'.randStr().'.png';
	$opic = ROOT.$ori;//大图的绝对路径
	$opath = ROOT.$path;//小图的绝对路径
	//大图如果获取不到,返回false
	if(!list($bw,$bh,$type) = getimagesize($opic)){
		return false;
	}
	//$type 其实获取下来是图片类型/1 = GIF，2 = JPG，3 = PNG，4 = SWF，5 = PSD，6 = BMP，7 = TIFF(intel byte order)，8 = TIFF(motorola byte order)，9 = JPC，10 = JP2，11 = JPX，12 = JB2，13 = SWC，14 = IFF，15 = WBMP，16 = XBM
	$map = array(
		1 => 'imagecreatefromgif',
		2 => 'imagecreatefromjpeg',
		3 => 'imagecreatefrompng',
		6 => 'imagecreatefromwbmp'
	);
	//如果传来的图片类型不在map里面,无法出来,对不住,返回false
	if(!isset($map[$type])){
		return false;
	}


	$func = $map[$type];//1
	/*//动态函数讲解
	function a(){
		echo "老大";
	}
	$b = a;
	$b();*/
	//这是大图的
	$big = $func($opic);

	//创建小画板
	$small = imagecreatetruecolor($sw, $sh);
	$white = imagecolorallocate($small, 255, 255, 255);
	imagefill($small,0,0,$white);
	//计算一下缩率比
	$rate = min($sw/$bw,$sh/$bh);

	//真正粘到小图上的真实等比例宽高
	$rw = $bw*$rate;
	$rh = $bh*$rate;

	imagecopyresampled($small, $big, ($sw-$rw)/2, ($sh-$rh)/2, 0, 0, $rw, $rh, $bw, $bh);
	imagepng($small,$opath);

	imagedestroy($big);
	imagedestroy($small);

	return $path;
}
//makeThumb('../')